// 结构体
// 你可以理解为一种自定义字典类型
package main

import "fmt"

type person struct {
	name string
	age  int
}

func main() {
	fmt.Println(person{"Bob", 20})
	fmt.Println(person{name: "Alice", age: 30})
	// 省略的字段会赋值零值
	fmt.Println(person{name: "Fred"})
	// & 前缀生成一个结构体指针。
	fmt.Println(&person{name: "Ann", age: 40})

	s := person{name: "Sean", age: 50}
	// 使用 . 来访问结构体字段
	fmt.Println(s.name)

	// 指针传递，可以自动 解引用
	sp := &s
	fmt.Println(sp.age)

	// 已经定义的结构体值是可变的
	sp.age = 51
	fmt.Println(sp.age)
}
